iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
0
AI & Data

30天 python 學習心得分享系列 第 28

Day28- 資料處理模組-Pandas-DataFrame 應用 2

  • 分享至 

  • xImage
  •  

DataFrame除了上篇文章介紹還有很多好用的方式,今天將繼續學習更多DataFrame應用方式.


DataFrame讀取資料庫

DataFrame也能讀取其他資料來源,下面示範如何使用:

import pandas as pd
import pymysql

db = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='30days', charset='utf8')
sql = "SELECT * FROM PttSoftJob"
data = pd.read_sql(sql,db)
db.close()
print(data)

#輸出:
   SoftJobId         ...         SoftJobTCreatedDate
0           1         ...         2018-11-04 22:55:30
1           2         ...         2018-11-04 22:55:30
2           3         ...         2018-11-04 22:55:30
3           4         ...         2018-11-04 22:55:30
4           5         ...         2018-11-04 22:55:30
5           6         ...         2018-11-04 22:55:30
6           7         ...         2018-11-04 22:55:30
7           8         ...         2018-11-04 22:55:30
8           9         ...         2018-11-04 22:55:30
9          10         ...         2018-11-04 22:55:30
10         11         ...         2018-11-04 22:55:30
11         12         ...         2018-11-04 22:55:30
[12 rows x 5 columns]

print(type(data))
#輸出:
pandas.core.frame.DataFrame

由於資料表較長spyder僅顯示三欄,不過所有資料皆已經存入DataFrame內就能透過pandas進行資料分析了.

排序

針對資料進行排序是很常做的事,DataFrame可以透過索引與值進行排序:

範例DataFrame

台北市長候選人
   號次   姓名  年齡   黨派
0   1  吳蕚洋  58    無
1   2  丁守中  64  國民黨
2   3  姚文智  53  民進黨
3   4  柯文哲  59    無
4   5  李錫錕  71    無
5   3  姚文智  53  民進黨
6   3  姚文智  53  冒險家
print(台北市長候選人.sort_index())

#輸出:
   號次   姓名  年齡   黨派
0   1  吳蕚洋  58    無
1   2  丁守中  64  國民黨
2   3  姚文智  53  民進黨
3   4  柯文哲  59    無
4   5  李錫錕  71    無
5   3  姚文智  53  民進黨
6   3  姚文智  53  冒險家

#倒敘
print(台北市長候選人.sort_index(ascending=False))

#輸出:
   號次   姓名  年齡   黨派
6   3  姚文智  53  冒險家
5   3  姚文智  53  民進黨
4   5  李錫錕  71    無
3   4  柯文哲  59    無
2   3  姚文智  53  民進黨
1   2  丁守中  64  國民黨
0   1  吳蕚洋  58    無

print(台北市長候選人.sort_values(by = "年齡"))

#輸出:
   號次   姓名  年齡   黨派
2   3  姚文智  53  民進黨
5   3  姚文智  53  民進黨
6   3  姚文智  53  冒險家
0   1  吳蕚洋  58    無
3   4  柯文哲  59    無
1   2  丁守中  64  國民黨
4   5  李錫錕  71    無

#倒敘
print(台北市長候選人.sort_values(by = "年齡"), ascending=False)

#輸出:
   號次   姓名  年齡   黨派
4   5  李錫錕  71    無
1   2  丁守中  64  國民黨
3   4  柯文哲  59    無
0   1  吳蕚洋  58    無
2   3  姚文智  53  民進黨
5   3  姚文智  53  民進黨
6   3  姚文智  53  冒險家

刪除

若要刪除DataFrame內資料可使用drop()函數來選擇刪除列或欄,如下:
官方文件

範例

台北市長候選人
   號次   姓名  年齡   黨派
0   1  吳蕚洋  58    無
1   2  丁守中  64  國民黨
2   3  姚文智  53  民進黨
3   4  柯文哲  59    無
4   5  李錫錕  71    無
5   3  姚文智  53  民進黨
6   3  姚文智  53  冒險家
  • 刪除欄
print(台北市長候選人.drop(['黨派'], axis = 1))

#輸出:
   號次   姓名  年齡
0   1  吳蕚洋  58
1   2  丁守中  64
2   3  姚文智  53
3   4  柯文哲  59
4   5  李錫錕  71
5   3  姚文智  53
6   3  姚文智  53
  • 刪除列
print(台北市長候選人.drop(6, axis = 0))

#輸出:
   號次   姓名  年齡   黨派
0   1  吳蕚洋  58    無
1   2  丁守中  64  國民黨
2   3  姚文智  53  民進黨
3   4  柯文哲  59    無
4   5  李錫錕  71    無
5   3  姚文智  53  民進黨

以上,就是目前所學到的DataFrame的應用方式,剩餘更多的功能就等使用到再去學習吧!

參考資料:https://ithelp.ithome.com.tw/articles/10185922
參考資料:https://zhuanlan.zhihu.com/p/30029845

文章內容如果有錯誤歡迎留言告知,可以幫忙糾正錯誤的觀念,感謝!


上一篇
Day27- 資料處理模組-Pandas-DataFrame 應用
下一篇
Day29- 資料視覺化模組-Matplotlib
系列文
30天 python 學習心得分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言